2025.7.22 quiverによるベクトル場のプロット【matplotlib】
引数が2の場合は、ベクトルの向きを表す組として扱われる。それぞれ x 方向、y 方向の長さを表しているが、描かれるベクトルの長さは本数とベクトル数に基づいて自動的に調整されている。なお、始点は x = 0, 1, 2, ..., n, y = 0 となる。
code:p.py
import numpy as np
import matplotlib.pyplot as plt
u = 1, 1, 0, -1, -1, -1, 0, 1, 1
v = 0, 1, 1, 1, 0, -1, -1, -1, 0
plt.quiver(u, v)
plt.grid()
plt.show()
https://scrapbox.io/files/687f129aa7a248adfcabfbf8.png
第1,2引数でベクトルの始点を指定する。
code:p.py
import numpy as np
import matplotlib.pyplot as plt
u = 1, 1, 0, -1, -1, -1, 0, 1, 1 # <--- (!)
v = 0, 1, 1, 1, 0, -1, -1, -1, 0 # <--- (!)
x = 0, 1, 2, 0, 1, 2, 0, 1, 2
y = 0, 0, 0, 1, 1, 1, 2, 2, 2
plt.quiver(x, y, u, v)
plt.grid()
plt.show()
https://scrapbox.io/files/687f12fc1bb7abc771cd756c.png
第5引数で各ベクトルの色を指定する。カラーマップは cmap 引数で指定する。
code:p.py
import numpy as np
import matplotlib.pyplot as plt
u = 1, 1, 0, -1, -1, -1, 0, 1, 1
v = 0, 1, 1, 1, 0, -1, -1, -1, 0
x = 0, 1, 2, 0, 1, 2, 0, 1, 2
y = 0, 0, 0, 1, 1, 1, 2, 2, 2
c = 0, 1, 2, 3, 4, 5, 6, 7, 8 # <---(!)
plt.quiver(x, y, u, v, c, cmap='Reds')
plt.grid()
plt.show()
https://scrapbox.io/files/687f1979f1a2c3b2c2f128ee.png
quiver:scale引数について【matplotlib】